﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;

namespace sistemaAcademicoFinanceiroEscolas
{
    public partial class definirNota : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            //lstTurma.Items.Clear();

            if (!Page.IsPostBack)
            {

                //Escrever o nome do aluno

                codigoAluno.Value = Request.QueryString["codigoAluno"];
                //Pegar nome do aluno
                SqlConnection sqlc = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
                sqlc.Open();
                //Resgatar o nome do aluno
                string q = "select codigoAluno, nomeAluno from aluno where codigoAluno=" + Request.QueryString["codigoAluno"];
                SqlCommand cmd = new SqlCommand(q, sqlc);
                SqlDataReader myReader = cmd.ExecuteReader();

                while (myReader.Read())
                {
                    string nomeAluno = myReader["nomeAluno"].ToString();


                    lblNomeAluno.Text = nomeAluno;

                }

                //nome do aluno escrito

                //Carregar séries

                string sqlSerie = "select * from serie";

                SqlCommand cmdSerie = new SqlCommand(sqlSerie, sqlc);
                SqlDataReader myReaderSerie = cmdSerie.ExecuteReader();

                ListItem serieSelecione = new ListItem();
                serieSelecione.Value = "0";
                serieSelecione.Text = "Selecione uma série";

                lstSerie.Items.Add(serieSelecione);

                while (myReaderSerie.Read())
                {

                    ListItem serie = new ListItem();

                    serie.Value = myReaderSerie["codigoSerie"].ToString();
                    serie.Text = myReaderSerie["descricaoSerie"].ToString();

                    lstSerie.Items.Add(serie);

                }

                //Finalizar carregamento de séries

                //carregar anos letivos

                string sqlAnoLetivo = "select * from anoLetivo";

                SqlCommand cmdAnoLetivo = new SqlCommand(sqlAnoLetivo, sqlc);
                SqlDataReader myReaderAnoLetivo = cmdAnoLetivo.ExecuteReader();

                ListItem anoLetivoSelecione = new ListItem();
                anoLetivoSelecione.Value = "0";
                anoLetivoSelecione.Text = "Selecione um Ano Letivo";

                lstUnidade.Items.Add(anoLetivoSelecione);

                while (myReaderAnoLetivo.Read())
                {

                    ListItem anoLetivo = new ListItem();

                    anoLetivo.Value = myReaderAnoLetivo["codigoAnoLetivo"].ToString();
                    anoLetivo.Text = myReaderAnoLetivo["descricaoAnoLetivo"].ToString();

                    lstUnidade.Items.Add(anoLetivo);

                }

                //anios letivos carregados


                sqlc.Close();
                myReader.Close();
                myReaderSerie.Close();
                myReaderAnoLetivo.Close();

            }
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            //verificar que serie, turma e analetivo foram selecionados
            if ((lstSerie.SelectedValue != "0") & (lstTurma.SelectedValue != "0") & (lstUnidade.SelectedValue != "0"))
            {

                SqlConnection sqlc = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
                sqlc.Open();

                //verificar se o aluno já não está cadastrado neste ano letivo

                string sqlVerificar = "select codigoAluno, codigoAnoLetivo from matricula where codigoAluno="+Request["codigoAluno"]+" and codigoAnoLetivo="+lstUnidade.SelectedValue;

                SqlCommand cmdAnoLetivo = new SqlCommand(sqlVerificar, sqlc);
                SqlDataReader myReaderVerificar = cmdAnoLetivo.ExecuteReader();

                if (!myReaderVerificar.HasRows)
                {


                    //Cadastrar Matrícula no banco de dados



                    string SqlMatricula = "insert into matricula(codigoAluno, codigoTurma, codigoAnoLetivo, observacoesMatricula) ";
                    SqlMatricula = SqlMatricula + "values(" + Request["codigoAluno"] + ", " + lstTurma.SelectedValue + ", " + lstUnidade.SelectedValue + ", '" + txtObservacoes.Text + "')";

                    SqlCommand cadastrarMatricula = new SqlCommand(SqlMatricula, sqlc);
                    cadastrarMatricula.ExecuteNonQuery();

                    string literalc = "<script language=JavaScript>matriculaRealizada();</script>";
                    form1.Controls.Add(new LiteralControl(literalc));

                }
                else {

                    lblValidacao.Text = "A matrícula não pôde ser realizada, pois já existe uma matrícula para este aluno no ano letivo informado. Se deseja realizar modificações na matrícula do aluno, utilize a opção de visualizar matrículas na lista de alunos.";
                
                }

            }else{

                lblValidacao.Text = "A série, turma e ano letivo devem ser selecionados.";
            
            }

        }

        protected void lstSerie_SelectedIndexChanged(object sender, EventArgs e)
        {
            //Carregar as turmas da série

            SqlConnection sqlc = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
            sqlc.Open();

            string sqlTurmas = "select * from turma where codigoSerie=" + lstSerie.SelectedValue;
            SqlCommand cmd = new SqlCommand(sqlTurmas, sqlc);
            SqlDataReader myReader = cmd.ExecuteReader();


            ListItem turmaSelecione = new ListItem();

            turmaSelecione.Value = "0";
            turmaSelecione.Text = "Selecione uma turma.";

            lstTurma.Items.Add(turmaSelecione);

            while (myReader.Read())
            {

                ListItem turma = new ListItem();

                turma.Value = myReader["codigoTurma"].ToString();
                turma.Text = myReader["descricaoTurma"].ToString();

                lstTurma.Items.Add(turma);

            }

            //Turmas da série carregadas
        }
    }
}

        
    

